﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using AgileSaude.Entities;
using AgileSaude.Data;
using AgileSaude.Data.Repository;
using FBS.Framework;

namespace AgileSaude.Business.Process
{
    internal class PerfilProcess
    {
        internal PerfilEntities GetPerfil(int pIdPerfil)
        {
            perfil oData = new perfilRepository().getperfil(pIdPerfil);

            if (oData == null)
            {
                return new PerfilEntities();
            }
            else
            {
                return GetPerfil(oData);
            }

        }

        private static PerfilEntities GetPerfil(perfil oData)
        {
            PerfilEntities oEntitie = new PerfilEntities();

            Util.CopyPropertyValues(oData, oEntitie);

            return oEntitie;
        }

        internal List<PerfilEntities> Listar(ref Resultado resultado)
        {
            List<PerfilEntities> lista = new List<PerfilEntities>();

            try
            {
                var perfil = from u in new perfilRepository().GetAll()
                              select u;

                foreach (perfil obj in perfil)
                {
                    lista.Add(GetPerfil(obj));
                }

                resultado.Sucesso = true;
            }
            catch (Exception ex)
            {
                String mensagem = ex.Message;
                new ResultadoProcess().GravarLog(ref resultado, mensagem, "AgileSaude", "", "Listar", "PerfilProcess");
                resultado.Sucesso = false;
            }

            return lista;
        }


    }
}
